<form id="set-password-page" #form>
  <div class="content">
    <img class="logo-image" alt="Bitwarden" />
    <p class="lead">{{ "setMasterPassword" | i18n }}</p>
    <div class="box text-center" *ngIf="syncLoading">
      <i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
      {{ "loading" | i18n }}
    </div>
    <div *ngIf="!syncLoading">
      <div class="box">
        <app-callout type="tip">{{ "ssoCompleteRegistration" | i18n }}</app-callout>
        <app-callout
          type="warning"
          title="{{ 'resetPasswordPolicyAutoEnroll' | i18n }}"
          *ngIf="resetPasswordAutoEnroll"
        >
          {{ "resetPasswordAutoEnrollInviteWarning" | i18n }}
        </app-callout>
        <app-callout
          type="info"
          [enforcedPolicyOptions]="enforcedPolicyOptions"
          *ngIf="enforcedPolicyOptions"
        >
        </app-callout>
      </div>
      <form
        #form
        (ngSubmit)="submit()"
        [appApiAction]="formPromise"
        ngNativeValidate
        autocomplete="off"
      >
        <div class="box">
          <div class="box-content">
            <div class="box-content-row" appBoxRow>
              <div class="box-content-row-flex">
                <div class="row-main">
                  <label for="masterPassword"
                    >{{ "masterPass" | i18n }}
                    <strong
                      class="sub-label text-{{ masterPasswordScoreColor }}"
                      *ngIf="masterPasswordScoreText"
                    >
                      {{ masterPasswordScoreText }}
                    </strong>
                  </label>
                  <input
                    id="masterPassword"
                    type="{{ showPassword ? 'text' : 'password' }}"
                    name="MasterPassword"
                    class="monospaced"
                    [(ngModel)]="masterPassword"
                    required
                    (input)="updatePasswordStrength()"
                    appInputVerbatim
                  />
                </div>
                <div class="action-buttons">
                  <button
                    type="button"
                    class="row-btn"
                    appStopClick
                    appA11yTitle="{{ 'toggleVisibility' | i18n }}"
                    [attr.aria-pressed]="showPassword"
                    (click)="togglePassword(false)"
                  >
                    <i
                      class="bwi bwi-lg"
                      aria-hidden="true"
                      [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
                    ></i>
                  </button>
                </div>
              </div>
              <div class="progress">
                <div
                  class="progress-bar bg-{{ masterPasswordScoreColor }}"
                  role="progressbar"
                  aria-valuenow="0"
                  aria-valuemin="0"
                  aria-valuemax="100"
                  [ngStyle]="{ width: masterPasswordScoreWidth + '%' }"
                  attr.aria-valuenow="{{ masterPasswordScoreWidth }}"
                ></div>
              </div>
            </div>
          </div>
          <div class="box-footer">
            {{ "masterPassDesc" | i18n }}
          </div>
        </div>
        <div class="box">
          <div class="box-content">
            <div class="box-content-row" appBoxRow>
              <div class="box-content-row-flex">
                <div class="row-main">
                  <label for="masterPasswordRetype">{{ "reTypeMasterPass" | i18n }}</label>
                  <input
                    id="masterPasswordRetype"
                    type="password"
                    name="MasterPasswordRetype"
                    class="monospaced"
                    [(ngModel)]="masterPasswordRetype"
                    required
                    appInputVerbatim
                    autocomplete="new-password"
                  />
                </div>
                <div class="action-buttons">
                  <button
                    type="button"
                    class="row-btn"
                    appStopClick
                    appA11yTitle="{{ 'toggleVisibility' | i18n }}"
                    [attr.aria-pressed]="showPassword"
                    (click)="togglePassword(true)"
                  >
                    <i
                      class="bwi bwi-lg"
                      aria-hidden="true"
                      [ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
                    ></i>
                  </button>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="box last">
          <div class="box-content">
            <div class="box-content-row" appBoxRow>
              <label for="hint">{{ "masterPassHint" | i18n }}</label>
              <input id="hint" type="text" name="Hint" [(ngModel)]="hint" />
            </div>
          </div>
          <div class="box-footer">
            {{ "masterPassHintDesc" | i18n }}
          </div>
        </div>
        <div class="buttons">
          <button type="submit" class="btn primary block" [disabled]="form.loading">
            <i
              *ngIf="form.loading"
              class="bwi bwi-spinner bwi-spin"
              title="{{ 'loading' | i18n }}"
              aria-hidden="true"
            ></i>
            <span>{{ "submit" | i18n }}</span>
          </button>
          <button class="btn block" (click)="logOut()">
            <span>{{ "logOut" | i18n }}</span>
          </button>
        </div>
      </form>
    </div>
  </div>
</form>
